package com.briup.day41;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;


/*
 * 解析和封装消息的工具类
 * 
 * 思考：
 * 
 * 1、当前对消息进行封装和解读的逻辑是否能够发送中文，为什么？
 * 
 * 2、如何改写并解决中文问题？
 */
public class MessageUtil {

	// 把一条普通消息转换成指定的格式（头部声明消息长度）
	public static String toMessage(String msg) {
		return msg.length() + "|" + msg;
	}
	
	// 从指定输入流中解析出真正的消息内容
	public static String parseMessage(InputStream is) {
		InputStreamReader isr = new InputStreamReader(is);
		BufferedReader br = new BufferedReader(isr);
		try {
			int i = -1;
			String len = "";
			while(((char)(i = br.read()) != '|')) {
				len += (char)i;
			}
			StringBuffer sb = new StringBuffer();
			for (int j = 0; j < Integer.parseInt(len); j++) {
				sb.append((char)br.read());
			}
			return sb.toString();
		} catch (Exception e) {
			return "";
		}
	}
	
	
}
